#include <gtk/gtk.h>
#include "gui.h"       // 包含窗口显示相关声明
#include "admin.h"     // 包含管理员初始化函数声明
#include "table.h"     // 包含台球桌初始化函数声明

// 声明外部函数（确保编译时可见）
void init_admin(void);    // 从 admin.h 中引入的管理员初始化函数
void init_tables(void);   // 从 table.h 中引入的台球桌初始化函数
void show_login_window(GtkApplication *app);  // 从 gui.h 中引入的登录窗口函数

   // 应用激活回调
static void activate(GtkApplication *app, gpointer user_data) {
    // 初始化数据文件
    init_data_file();
    
    // 显示登录窗口
    show_login_window(app);
}

int main(int argc, char **argv) {
    GtkApplication *app;
    int status;
    
    app = gtk_application_new("com.example.member-system", G_APPLICATION_FLAGS_NONE);
    if (!app) {
        fprintf(stderr, "无法创建GTK应用实例\n");
        return 1;
    }
    
    g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
    status = g_application_run(G_APPLICATION(app), argc, argv);
    g_object_unref(app);
    
    return status;  // 补充返回值
}
